#ifndef TITLEBAR_H
#define TITLEBAR_H

#include <QHBoxLayout>
#include <QLabel>
#include <QMenuBar>
#include <QPushButton>
#include <QWidget>
#include <qevent.h>
#include <qpoint.h>
#include <qpushbutton.h>


class TitleBar : public QWidget {
    Q_OBJECT
  public:
    TitleBar(QWidget *parent = nullptr);
    ~TitleBar();

    void setTitleIcon(QString filePath); // 设置标题栏
    void setHeaderInfor(QString info);   // 设置标题栏自定义信息

  private:
    QHBoxLayout *mainLayout;   // 主布局
    QHBoxLayout *leftLayout;   // 左侧菜单栏布局
    QHBoxLayout *centerLayout; // 中间标题布局
    QHBoxLayout *rightLayout;  // 右侧控制按钮布局

    QMenuBar *menubar; // 工具栏
    QMenu *fileMenu;   // 文件菜单
    QMenu *editMenu;   // 编辑菜单
    QMenu *toolMenu;   // 工具菜单
    QMenu *viewMenu;   // 视图菜单

    QLabel *titleIcon; // 标题图标
    QLabel *title;     // 标题栏内容
    QLabel *textLabel; // 显示内容信息

    QPushButton *minButton;    // 最小化图标按钮
    QPushButton *restorButton; // 还原图标按钮
    QPushButton *maxButton;    // 最大化按钮
    QPushButton *closeButton;  // 关闭按钮         

  signals:
    // 按钮触发的信号
    void signalButtonMinClicked();
    void signalButtonRestoreClicked();
    void signalButtonMaxClicked();
    void signalButtonCloseClicked();

  private:
    void initUI();                // 初始化页面布局组件
    void initBindingSignalSlot(); // 初始化信号与槽的绑定
    void loadStyleSheet();        // 加载样式文件
    void initIcon();
};

#endif // TITLEBAR_H
